//função dec2hex: converte números decimais em números hexadecimais 
function dec2hex(numero){
  var base = 16;
  var digito = new Array();
  var i = 0;
	
  while(numero != 0){
    i++;
    
    digito[i] = numero % base;

    numero = Math.floor(numero / base);
  }
  value = "";
	  
  while(i >= 1){
    switch(digito[i]){
      case 10:{ 
    	value += "A"; 
	     
    	break;
      }
      
      case 11:{ 
    	value += "B"; 
    	
    	break; 
      }
      
      case 12:{ 
        value += "C"; 
        
        break;
      }
      
      case 13:{ 
    	value += "D"; 
    	
    	break;
      }
      
      case 14:{ 
    	value += "E"; 
    	
    	break;
      }
      
      case 15:{ 
        value += "F"; 
        
        break;
      }
      
      default:{ 
        value += digito[i]; 
        
        break; 
      }
    }
    i--;
  }
  return value;
}

function StrongPassword(){
  document.forms[0].ds_password.value = "";
  
  tamanho = 6;
  
  // validar o campo *dígitos*
  if(tamanho < 1 || isNaN(tamanho)){
	alert("Quantidade de Caracteres inválido");
      
    return;
  }

  // códigos ASCII decimais
  min = 32;
  
  max = 126;

  for(i = 1; i <= tamanho; i++){
    caracter = min + Math.floor((Math.random() * (max - min)));  // 32 a 126

    caracter = "%" + dec2hex(caracter);

    caracter = unescape(caracter);

    document.forms[0].ds_password.value += caracter;
  }
}

var Password = function(){
  this.pass = "";
	  
  this.generate = function(chars){
    for(var i= 0; i<chars; i++) {
      this.pass += this.getRandomChar();
	}
    
    return this.pass;
  };
  
  this.getRandomChar = function(){
    /*
	 *    matriz contendo em cada linha indices (inicial e final) da tabela ASCII para retornar alguns caracteres.
	 *    [48, 57] = numeros;
	 *    [64, 90] = "@" mais letras maiusculas;
	 *    [97, 122] = letras minusculas;
	 */
	var ascii = [[48, 57],[64,90],[97,122]];
	
	var i = Math.floor(Math.random()*ascii.length);
	
	return String.fromCharCode(Math.floor(Math.random() * (ascii[i][1] - ascii[i][0])) + ascii[i][0]);
  };
};

function showPass(target, pass) {
  document.getElementById(target).value = pass;
}

function newPass(target, len){
  var pwd = new Password();

  showPass(target, pwd.generate(len));
}

function relogio(){
  date = new Date;
  
  time = showTime(date.getHours()) + ":" + showTime(date.getMinutes()) + ":" + showTime(date.getSeconds());
  
  document.getElementById("clock").innerHTML = time;
  
  setTimeout("relogio()",1000);
}

function showTime(time){
  return (time > 9) ? "" + time : "0" + time;
}

function getScreenSize(content){
  if(screen.width == 640 || screen.height == 480){
    //alert("A resolução da tela do seu monitor é 640x480. RECOMENDÁVEL 800x600.");
	document.getElementById(content).style.height = '34px';	
  }	
  else if(screen.width == 800 || screen.height == 600){
    //alert("A resolução da tela do seu monitor é 800x600. Você terá uma boa visão do site.");
	document.getElementById(content).style.height = '350px';		
  }
  else if (screen.width == 1024 || screen.height == 768){
    //alert("A resolução da tela do seu monitor é 1024x768. Você terá uma boa visão do site. RECOMENDÁVEL 800x600.");
	document.getElementById(content).style.height = '430px';	
  }  
  else if(screen.width == 1152 || screen.height == 864){
    alert("A resolução da tela do seu monitor é 1152x864. Você terá uma boa visão do site. RECOMENDÁVEL 800x600.");
  }
  else{ //if all else
    alert("A resolução da tela do seu monitor é desconhecida. Para ter uma visão total do site é recomendavel 800x600.");
  }
}